package org.example;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Random;

public class testt3 {
    public static void main (String[] args){
        //public BigInteger (int num,Random rand)
        //获取随机最大整数，范围：【0~2的num次方-1】
        Random rand=new Random();
        BigInteger bd1=new BigInteger(4,rand);
        System.out.println(bd1);
        //静态创建对象
        BigInteger bd2= BigInteger.valueOf(12);
        BigInteger bd3=BigInteger.valueOf(3);
        //加法
        BigInteger bd4=bd2.add(bd3);
        System.out.println(bd4);
        //减法
        BigInteger bd5=bd2.subtract(bd4);
        System.out.println(bd5);
        //乘法
        BigInteger bd6=bd2.multiply(bd5);
        System.out.println(bd6);
        //除法
        BigInteger bd7=bd2.divide(bd5);
        System.out.println(bd7);
        //取余
        BigInteger[]arr=bd2.divideAndRemainder(bd5);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        //比较
        boolean result=bd2.equals(bd5);
        System.out.println(result);
        //次幂
        BigInteger bd8=bd2.pow(2);
        System.out.println(bd8);
        //比较大小
        BigInteger bd9=bd2.max(bd5);
        System.out.println(bd9);
        BigInteger bd10=bd2.min(bd5);
        System.out.println(bd10);
        //绝对值
        BigInteger bd11=bd2.abs();
        System.out.println(bd11);
/*如何获取BigInteger的对象  处理非常大的整数
   静态：BigInteger b1=BigInteger.valueOf(int num);
   构造：BigInteger b2=new BigInteger("整数类型的字符串");
*/
        //BigDecimal  处理精却的小数
        //表示的数值很大，超出了double的取值范围，用构造方法
        //表示的数值小，没有超出double的取值范围，用静态方法
        BigDecimal bd12=new BigDecimal("100.00");
        System.out.println(bd12);
        BigDecimal bd13=BigDecimal.valueOf(100.0);
        System.out.println(bd13);
        //如果传递数值是0~10的整数，返回的是常量，不会创建新的对象
        BigDecimal bd14 = BigDecimal.valueOf(10);
        BigDecimal bd15 = BigDecimal.valueOf(10);
        System.out.println(bd14==bd15);//ture
        //如果传递数值超出了0~10的整数，返回的是新的对象  //false

        //加法
        BigDecimal bd16 = BigDecimal.valueOf(100.00);
        BigDecimal bd17=BigDecimal.valueOf(10.0);
        BigDecimal add = bd16.add(bd17);
        System.out.println(add);
        //减法
        BigDecimal sub=bd16.subtract(bd17);
        System.out.println(sub);
        //乘法
        BigDecimal mul=bd16.multiply(bd17);
        System.out.println(mul);
        //除法
        BigDecimal divide = bd16.divide(bd17);
        System.out.println(divide);
        //除法  保留几位小数
        BigDecimal div=bd16.divide(bd17,2,BigDecimal.ROUND_HALF_UP);
        System.out.println(div);



    }
}


